﻿namespace CRM.Database.Model
{
    /// <summary>
    /// Интерфейс для модификации данных
    /// </summary>
    public interface IAddDeleteUpdate
    {
        /// <summary>
        /// Добавление элемента в коллекцию
        /// </summary>
        /// <param name="item">Элемент</param>
        /// <param name="userLogin">Логин пользователя, который делает изменения</param>
        bool Add(object item, string userLogin);


        /// <summary>
        /// Удаление элемента из коллекции
        /// </summary>
        /// <param name="item">Элемент</param>
        /// <returns>Результат удаления</returns>
        bool Delete(object item);


        /// <summary>
        /// Удаление элемента из коллеции по идентификатору
        /// </summary>
        /// <param name="itemId">Идентификатор</param>
        /// <returns>Результат удаления</returns>
        bool DeleteById(int itemId);


        /// <summary>
        /// Обновление элемента в коллекции
        /// </summary>
        /// <param name="item">Новый элемент</param>
        /// <param name="userLogin">Логин пользователя, который делает изменения</param>
        /// <returns>Результат операции</returns>
        bool Update(object item, string userLogin);
    }
}